package com.empresa.iflex.core;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.empresa.iflex.R;

public class Compara extends Activity {
	
	
	private EditText eGasolina, eEtanol; 	// Variaveis para o calculo de comparacao entre etanol e gasolina
	private int melhor;		// Variável que determina o melhor combustúvel (0 = Tanto Faz, 1 = Etanol, 2 = Gasolina)
	private int economia;	//% de economia relativa à eficiencia e ao preço do combustivel
	
	
	/* Chamada quando o botão Menu é apertado */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.menu, menu);
          return true;
    }
    
    
    /* Chamad quando uma opção do Menu é selecionada */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
      // Captura o menu selecionado
       switch (item.getItemId()) {
          case R.id.about:
             mAbout();
             return true;
          case R.id.sair:
             finish();
             return true;
          default:
             return super.onOptionsItemSelected(item);
       }
    }
    
    
    /* Opção "About" do Menu */
    private void mAbout(){  
    	Context mContext = getApplicationContext();
    	LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
    	View layoutmenu = inflater.inflate(R.layout.about,
                (ViewGroup) findViewById(R.id.layoutmenu));

    	AlertDialog.Builder builder = new AlertDialog.Builder(this);  
    	builder.setIcon(R.drawable.f);
    	builder.setTitle("iFlex");
	    builder.setView(layoutmenu)
	    	.setCancelable(false)
	    	.setPositiveButton("Ok", new DialogInterface.OnClickListener(){ 
	    		public void onClick(DialogInterface dialog, int id){  
	    			dialog.cancel();
	    	    }  
	    }); 
    	AlertDialog alert = builder.create();  
    	alert.show(); 
    	
    }

    
	/* Chamada quando o programa eh inicializado */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      
        CarregaTelaInicial();
    }
    
    
    public void CarregaTelaInicial(){    	
    	setContentView(R.layout.comp);
    	findViewById(R.id.bCalc).setOnClickListener(mResult_comp);
    	eGasolina = (EditText) findViewById(R.id.eGas);
    	eEtanol = (EditText) findViewById(R.id.eEta);
    }
    
    
    /* Exibe o resultado da funcao de comparacao de combustiveis */
    public final Button.OnClickListener mResult_comp = new Button.OnClickListener() {
        public void onClick(View v) {
        	
        	try {
				float fEtanol = Float.parseFloat(eEtanol.getText().toString());
				float fGasolina = Float.parseFloat(eGasolina.getText().toString());
							
				int relacao = 70 - Math.round((fEtanol/fGasolina)*100);
				
				if (relacao > 0){
					melhor = 1;	// etanol eh o mais indicado
					economia = relacao;
				}
					
				else if (relacao < 0){
					melhor = 2;	// gasolina eh a mais indicada
					economia = (relacao * -1);
				}else {
					melhor = 0;
				}
					
				
				Mensagem();
				
			} catch (NumberFormatException e) {
				// Toast pra evitar campos em branco
				Toast.makeText(getApplicationContext(), "Digite os preços", Toast.LENGTH_SHORT).show();
				
			}
        }
    };
    
    
    /* Mensagem de apresentação do melhor combustível */
    private void Mensagem(){  
    	AlertDialog.Builder builder = new AlertDialog.Builder(this);  
    	if (melhor==1) {
    		builder.setIcon(R.drawable.e);
    		builder.setTitle("Etanol");
	    	builder.setMessage("O Etanol é " +economia+ "% mais econômico!")  
	    	     .setCancelable(false)  
	    	     .setPositiveButton("Ok", new DialogInterface.OnClickListener(){  
	    	          public void onClick(DialogInterface dialog, int id){  
	    	        	  finish();
	    	          }  
	    	     }); 
    	}
    	else if (melhor ==2){
    		builder.setIcon(R.drawable.g);
    		builder.setTitle("Gasolina");
	    	builder.setMessage("A Gasolina é "+economia+ "% mais econômica!")  
	    	     .setCancelable(false)  
	    	     .setPositiveButton("Ok", new DialogInterface.OnClickListener(){  
	    	          public void onClick(DialogInterface dialog, int id){  
	    	        	  finish();
	    	          }  
	    	     }); 
    	}
    	else{
    		builder.setIcon(R.drawable.eg);
    		builder.setTitle("Escolha!");
	    	builder.setMessage("Os preços são equivalentes.")  
	    	     .setCancelable(false)  
	    	     .setPositiveButton("Ok", new DialogInterface.OnClickListener(){  
	    	          public void onClick(DialogInterface dialog, int id){  
	    	        	  finish();
	    	          }  
	    	     }); 
    	}
    	AlertDialog alert = builder.create();  
    	alert.show();  
    	} 
	
}
